package br.com.caim.viewcontroller.filtro;

import java.io.IOException;

import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import br.com.caim.bo.entidade.Usuario;

public class FiltroAutenticacao implements Filter {
	public void init(FilterConfig arg0) throws ServletException {
		System.out.println("===== FILTRO DE AUTENTICACAO INICIADO ====");
	}
	public void destroy() {}

	public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain chain) throws IOException, ServletException {
		// Executa antes de enviar a resposta para o servlet
		HttpServletRequest request = (HttpServletRequest) servletRequest;
		HttpServletResponse response = (HttpServletResponse) servletResponse;
		
		Usuario usuario = (Usuario) request.getSession().getAttribute("usuario");
		
		// Verifica se o usuario está logado
		if(usuario == null && request.getRequestURI().indexOf("Login") < 0 && 
				request.getRequestURI().indexOf("Cadastro") < 0 &&
				request.getRequestURI().indexOf("Erro") < 0) {
			response.sendRedirect("telaLogin.do");
		} else {
			chain.doFilter(servletRequest, servletResponse);
			// Envia a resposta para o cliente
		}
	}
}
